package com.example.designpatterns.composite;

/**
 * 抽象构件（Component）
 */
public abstract class FileComponent {
    //文件名称
    protected String name;
    //文件的层级 1 一级目录 2 二级目录 ...
    protected Integer level;
    //文件的类型 1 文件夹 2文件
    protected Integer type;

    //添加子文件/文件夹
    public abstract void add(FileComponent fileComponent);

    //移除子文件/文件夹
    public abstract void remove(FileComponent fileComponent);

    //获取指定的子文件/文件夹
    public abstract FileComponent getChild(int index);

    //打印子 子文件/子文件夹 名称的方法
    public abstract void print();
}
